package repository;

import bdzeitor.Conexao;
import domain.Cliente;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import javax.swing.table.DefaultTableModel;

public class ClienteDAO {

    public DefaultTableModel tabArquivo = new DefaultTableModel();
    public Cliente c = new Cliente();
    
    public void save(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).executeUpdate();
    }

    public void read(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        ResultSet result = null;

        result = conexao.getConnection().prepareStatement(sql).executeQuery();
        
        tabArquivo.addColumn("CPF");
        tabArquivo.addColumn("Data Nasc");
        tabArquivo.addColumn("Nome");
        tabArquivo.addColumn("Telefone");
        tabArquivo.addColumn("Data Cadastro");
        tabArquivo.addColumn("Email");

        while (result.next()) {
            String vetArquivo[] = new String[6];
            vetArquivo[0] = result.getString("cpf");
            vetArquivo[1] = result.getString("datanascimento");
            vetArquivo[2] = result.getString("nome");
            vetArquivo[3] = result.getString("telefone");
            vetArquivo[4] = result.getString("datacadastro");
            vetArquivo[5] = result.getString("email");
            tabArquivo.addRow(vetArquivo);
        }
    }

    public void delete(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).execute();
    }

    public void buscarIdCliente(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        ResultSet result = null;

        result = conexao.getConnection().prepareStatement(sql).executeQuery();
        
        c = new Cliente();
        String s[];
        while (result.next()) {
            c.setCpf(result.getString("cpf"));
            
            s = result.getString("datanascimento").split("-");
            Date d = new Date(Integer.parseInt(s[0])-1900, Integer.parseInt(s[1])-1, Integer.parseInt(s[2]));
            c.setDataNasc(d);
            
            c.setNome(result.getString("nome"));
            c.setTelefone(result.getString("telefone"));
            
            s = result.getString("datacadastro").split("-");
            Date dd = new Date(Integer.parseInt(s[0])-1900, Integer.parseInt(s[1])-1, Integer.parseInt(s[2]));
            c.setDataCadastro(dd);
            
            c.setEmail(result.getString("email"));
            break;
        }
    }

    public void update(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).executeUpdate();
    }
    
}
